System on-chip architectures often present a heavy burden on external memory access. A large number of masters require accesses through a single memory controller. Row change overhead is a significant source of inefficiency in SDRAM memory access. Rows must be activated and pre-charged before being read or written to. Preferably, consecutive accesses to two different rows in the same bank should be avoided. However, uncertainty in access requirements makes such inefficient access patterns difficult to avoid.